//////////////////////////////////////////////////////////////////////////////////////
//
//  Copyright (c) 2014-present, Egret Technology.
//  All rights reserved.
//  Redistribution and use in source and binary forms, with or without
//  modification, are permitted provided that the following conditions are met:
//
//     * Redistributions of source code must retain the above copyright
//       notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above copyright
//       notice, this list of conditions and the following disclaimer in the
//       documentation and/or other materials provided with the distribution.
//     * Neither the name of the Egret nor the
//       names of its contributors may be used to endorse or promote products
//       derived from this software without specific prior written permission.
//
//  THIS SOFTWARE IS PROVIDED BY EGRET AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
//  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
//  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
//  IN NO EVENT SHALL EGRET AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
//  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
//  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA,
//  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
//  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
//  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
//  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//////////////////////////////////////////////////////////////////////////////////////

class Main extends egret.DisplayObjectContainer {



    public constructor() {
        super();
        this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
    }

    private onAddToStage(event: egret.Event) {

        egret.lifecycle.addLifecycleListener((context) => {
            // custom lifecycle plugin

            context.onUpdate = () => {

            }
        })

        egret.lifecycle.onPause = () => {
            egret.ticker.pause();
        }

        egret.lifecycle.onResume = () => {
            egret.ticker.resume();
        }

        this.runGame().catch(e => {
            console.log(e);
        })



    }

    private async runGame() {
        await this.loadResource()
        this.createGameScene();
        const result = await RES.getResAsync("description_json")
        // this.startAnimation(result);
        // await platform.login();
        // const userInfo = await platform.getUserInfo();
        // console.log(userInfo);

    }

    private async loadResource() {
        try {
            const loadingView = new LoadingUI();
            this.stage.addChild(loadingView);
            await RES.loadConfig("resource/default.res.json", "resource/");
            await RES.loadGroup("preload", 0, loadingView);
            this.stage.removeChild(loadingView);
        }
        catch (e) {
            console.error(e);
        }
    }

    // private textfield: egret.TextField;

    /**
     * 创建游戏场景
     * Create a game scene
     */
    private createGameScene() {
        let a=50;
        let b=1086;
        let jx:egret.Shape=new egret.Shape();
        jx.graphics.beginFill(0x000000,1);
        jx.graphics.drawRect(270,1086,100,50);
        jx.graphics.endFill();
        this.addChild(jx);
       
        jx.touchEnabled=true;
        jx.addEventListener(egret.TouchEvent.TOUCH_TAP,myfunction2,this)

        let jx1:egret.Shape=new egret.Shape();
        jx1.graphics.beginFill(0x00ff00,1);
        jx1.graphics.drawRect(540,1086,100,50);
        jx1.graphics.endFill();
        this.addChild(jx1);

         let txt:egret.TextField=new egret.TextField();
         txt.text=60+"秒"
         txt.size=100;
         this.addChild(txt);

        let dsq:egret.Timer=new egret.Timer(100,60);

        jx1.touchEnabled=true;
        jx1.addEventListener(egret.TouchEvent.TOUCH_TAP,myfunction,this)
        function myfunction(){
            dsq.start();
            dsq.$addListener(egret.TimerEvent.TIMER,myfunction1,this)
          function myfunction1(){
               txt.text=dsq.repeatCount-dsq.currentCount+"秒"; 

               if(dsq.currentCount>=60){
                 //  removeEventListener()
               //  console.log(1);
                 jx.removeEventListener(egret.TouchEvent.TOUCH_TAP,myfunction2,this);
               } 
          }
        }
        function myfunction2(){
            a=a+5;
            b=b-5;
            jx.graphics.clear();
            jx.graphics.beginFill(0x000000,1);
            jx.graphics.drawRect(270,b,100,a);     
        }
    }
}